package com.atguigu.tingshu.album.client;

import com.atguigu.tingshu.album.client.impl.AlbumInfoDegradeFeignClient;
import com.atguigu.tingshu.model.album.AlbumAttributeValue;
import com.atguigu.tingshu.model.album.AlbumInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 产品列表API接口
 * </p>
 *
 * @author qy
 */
@FeignClient(value = "service-album",
        fallback = AlbumInfoDegradeFeignClient.class,
        contextId = "albumInfoFeignClient"
)
public interface AlbumInfoFeignClient {
    /**
     * 根据id获取专辑信息
     * @param id 专辑id
     * @return  专辑信息
     */
    @GetMapping("client/album/albumInfo/getAlbumInfo/{id}")
    AlbumInfo getAlbumInfo(@PathVariable("id") Long id);

    /**
     * 获取专辑统计信息
     *
     * @param id 专辑id
     * @return 统计信息
     */
    @GetMapping("client/album/albumInfo/getAlbumStats/{id}")
    Map<String, Integer> getAlbumStats(@PathVariable("id") Long id);

    /**
     * 查询专辑的标签
     * @param id 专辑id
     * @return 标签列表
     */
    @GetMapping("client/album/albumInfo/getAlbumAttributes/{id}")
    List<AlbumAttributeValue> getAlbumAttributes(@PathVariable("id") Long id);

}